URL 是 Uniform Resource Locator(统一资源定位符)的简称,用于标识互联网的资源的位置。
URL 的格式为 scheme:[//authority]path[?query][#fragment],其中 authority = [userinfo@]host[:port]。
scheme - 指协议,如 http 或者 ftp,必填userinfo - 用于权限验证的用户信息,格式为 username:password,可选host - 主机,可以是域名或者 IP,必填port - 端口号,可选,默认使用协议的默认端口path - 路径,用来表示主机的目录和文件地址。可选query - 查询参数。可选fragment - 片段,指网络资源中的一个片段。可选一个简单的 URL 的例子:https://www.codeeeee.com,只使用了 scheme 和 host,端口使用了 https 的默认端口 443
URI 是什么URI 是 Uniform Resource Identifier(统一资源标识符)的简称,用来标识互联网资源的名称。URL 和 URI 的格式相同,而且概念上比较容易混淆,有时候可以把他们等同。URL 和 URI 的区别是,前者代表资源的位置,后者代表资源的名称。URL 是 URI 的一种类型。
URL 为什么要编码URL 只能包含 ASCII 码的字符,所以当出现字符集以外的字符,就需要进行编码。同时,URL 有一些保留字符,如 :、/、&,遇到这些字符也需要进行编码转换,以免混淆 URL 的解析。
URL 编码规则URL 编码时,会将字符表示成对应的百分号编码(%)。具体的编码规则可以参考这里关于 URL 编码的介绍
在 Javascript 中,可以使用 encodeURIComponent 和 decodeURIComponent 进行 URL 的编码和解码。